package com.yict.csms.resourceplan.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import com.yict.csms.company.entity.Company;
import com.yict.csms.system.entity.DataDict;
import com.yict.csms.system.entity.Profession;
import com.yict.csms.system.entity.User;

/**
 * 雪箱订更记录信息表Entity
 * @author ryan.wang
 *
 */
@Entity
@Table(name = "CSMS_BOX_CONTRACTOR")
public class BoxContractor {
	
	@Id
	@Column(name = "BCID")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "csms_box_contractor_seq")
	@SequenceGenerator(name = "csms_box_contractor_seq", sequenceName = "SEQ_CSMS_BOX_CONTRACTOR", allocationSize = 1, initialValue = 1)
	private Long bcId;
	
	@Column(name = "WORKNO")
	private String workNo;
	
	@Column(name = "INPUTDATE")
	private Date inputDate;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "COMPANYID")
	private Company companyId;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "SHIPCOMPANYCODE")
	private DataDict shipCompanyCode;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "PROFEID")
	private Profession profeId;
	
	@Column(name = "ORDERQUANTITY")
	private Integer orderQuantity;
	
	@Column(name = "QUANTITY")
	private Integer quantity;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "STATUS")
	private DataDict status;
	
	@Column(name = "ORDERDATE")
	private Date orderDate;

	@Column(name = "REORDERDATE")
	private Date reOrderDate;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ORDERPERSON")
	private User orderPerson;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "REORDERPERSON")
	private User reOrderPerson;
	
	@Column(name = "ASSIGNEDDATE")
	private Date assignedDate;

	@Column(name = "REASSIGNEDDATE")
	private Date reAssignedDate;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ASSIGNEDPERSON")
	private User assignedPerson;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "REASSIGNEDPERSON")
	private User reAssignedPerson;
	
	@Column(name = "CONFIRMDATE")
	private Date confirmDate;

	@Column(name = "RECONFIRMDATE")
	private Date reConfirmDate;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CONFIRMPERSON")
	private User confirmPerson;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "RECONFIRMPERSON")
	private User reConfirmPerson;
	
	@Column(name = "CREATEDATE")
	private Date createDate;

	@Column(name = "UPDATEDATE")
	private Date updateDate;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "CREATEPERSON")
	private User createPerson;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "UPDATEPERSON")
	private User updatePerson;

	public Long getBcId() {
		return bcId;
	}

	public void setBcId(Long bcId) {
		this.bcId = bcId;
	}

	public String getWorkNo() {
		return workNo;
	}

	public void setWorkNo(String workNo) {
		this.workNo = workNo;
	}

	public Date getInputDate() {
		return inputDate;
	}

	public void setInputDate(Date inputDate) {
		this.inputDate = inputDate;
	}

	public Company getCompanyId() {
		return companyId;
	}

	public void setCompanyId(Company companyId) {
		this.companyId = companyId;
	}

	public DataDict getShipCompanyCode() {
		return shipCompanyCode;
	}

	public void setShipCompanyCode(DataDict shipCompanyCode) {
		this.shipCompanyCode = shipCompanyCode;
	}

	public Profession getProfeId() {
		return profeId;
	}

	public void setProfeId(Profession profeId) {
		this.profeId = profeId;
	}

	public Integer getOrderQuantity() {
		return orderQuantity;
	}

	public void setOrderQuantity(Integer orderQuantity) {
		this.orderQuantity = orderQuantity;
	}

	public DataDict getStatus() {
		return status;
	}

	public void setStatus(DataDict status) {
		this.status = status;
	}

	public Date getOrderDate() {
		return orderDate;
	}

	public void setOrderDate(Date orderDate) {
		this.orderDate = orderDate;
	}

	public Date getReOrderDate() {
		return reOrderDate;
	}

	public void setReOrderDate(Date reOrderDate) {
		this.reOrderDate = reOrderDate;
	}

	public User getOrderPerson() {
		return orderPerson;
	}

	public void setOrderPerson(User orderPerson) {
		this.orderPerson = orderPerson;
	}

	public User getReOrderPerson() {
		return reOrderPerson;
	}

	public void setReOrderPerson(User reOrderPerson) {
		this.reOrderPerson = reOrderPerson;
	}

	public Date getAssignedDate() {
		return assignedDate;
	}

	public void setAssignedDate(Date assignedDate) {
		this.assignedDate = assignedDate;
	}

	public Date getReAssignedDate() {
		return reAssignedDate;
	}

	public void setReAssignedDate(Date reAssignedDate) {
		this.reAssignedDate = reAssignedDate;
	}

	public User getAssignedPerson() {
		return assignedPerson;
	}

	public void setAssignedPerson(User assignedPerson) {
		this.assignedPerson = assignedPerson;
	}

	public User getReAssignedPerson() {
		return reAssignedPerson;
	}

	public void setReAssignedPerson(User reAssignedPerson) {
		this.reAssignedPerson = reAssignedPerson;
	}

	public Date getConfirmDate() {
		return confirmDate;
	}

	public void setConfirmDate(Date confirmDate) {
		this.confirmDate = confirmDate;
	}

	public Date getReConfirmDate() {
		return reConfirmDate;
	}

	public void setReConfirmDate(Date reConfirmDate) {
		this.reConfirmDate = reConfirmDate;
	}

	public User getConfirmPerson() {
		return confirmPerson;
	}

	public void setConfirmPerson(User confirmPerson) {
		this.confirmPerson = confirmPerson;
	}

	public User getReConfirmPerson() {
		return reConfirmPerson;
	}

	public void setReConfirmPerson(User reConfirmPerson) {
		this.reConfirmPerson = reConfirmPerson;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public Date getUpdateDate() {
		return updateDate;
	}

	public void setUpdateDate(Date updateDate) {
		this.updateDate = updateDate;
	}

	public User getCreatePerson() {
		return createPerson;
	}

	public void setCreatePerson(User createPerson) {
		this.createPerson = createPerson;
	}

	public User getUpdatePerson() {
		return updatePerson;
	}

	public void setUpdatePerson(User updatePerson) {
		this.updatePerson = updatePerson;
	}

	public Integer getQuantity() {
		return quantity;
	}

	public void setQuantity(Integer quantity) {
		this.quantity = quantity;
	}

}
